namespace Framework.StringSplit
{
    public interface IStringSplitConfigurationFluent :
        IFluentConfigurable<IStringSplitFluent, IStringSplitConfigurationFluent>
    {
        IStringSplitConfigurationFluent Set
            (
            char[] seperator = null,
            StringSplitOptionsType options = StringSplitOptionsType.Default,
            char esc = '\\',
            char escInner = '~',
            int count = int.MaxValue,
            char[] seperatorInner = null
            );

        IStringSplitConfigurationFluent Set
            (
            string[] seperator = null,
            StringSplitOptionsType options = StringSplitOptionsType.Default,
            char esc = '\\',
            char escInner = '~',
            int count = int.MaxValue
            );

        IStringSplitConfigurationFluent SetOptions(StringSplitOptionsType options);

        IStringSplitConfigurationFluent SetSeperator(params char[] seperator);

        IStringSplitConfigurationFluent SetSeperatorInner(params char[] seperator);

        IStringSplitConfigurationFluent SetSeperator(string[] seperator);

        IStringSplitConfigurationFluent SetCount(int count);

        IStringSplitConfigurationFluent SetEscape(char escape);

        IStringSplitConfigurationFluent SetEscapeInner(char escape);

        //IStringSplitConfigurationFluent SetProcessorType(StringSplitProcessorType processorType);

    }

}